/**
 * 
 */
package cn.biplam.common.runtime;

import cn.biplam.common.tools.DEBUG;
import cn.biplam.common.wrapper.ErrorMessage;

/**
 * 任务实现类示例
 * @author 	WangSong 2009-6-26 下午09:20:10
 * @version 1.0
 */
public class SampleTask extends TaskBase {
	
	int count=0;

	/**
	 * 构造方法 传入任务名称初始化
	 * @param taskName		任务在任务池中的唯一标识(必须唯一)
	 */
	public SampleTask(String taskName) {
		super(taskName);
	}

	/**
	 * 在任务执行的每次循环结束时，调用Thread.sleep(1)，以便中断退出
	 * @throws InterruptedException
	 * @throws ErrorMessage
	 * @throws InterruptedException 
	 */
	@Override
	protected void _run() throws ErrorMessage, InterruptedException {
		while(true){
			this.count++;
			DEBUG.println("执行:"+this.getStatus());
			try {
				Thread.sleep(2000);
			} catch (InterruptedException e) {
				DEBUG.println("中断异常");
				throw e;
			}//为测试，休眠2秒
		}
	}

	@Override
	public String getStatus() {
		return String.valueOf(this.count);
	}

	/**
	 * 
	 * @param args
	 * @throws ErrorMessage 
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws ErrorMessage, InterruptedException {
		String taskName="测试任务";
		SampleTask task=new SampleTask(taskName);
		Task.putTask(task);
//		Thread.sleep(4000);
//		Task.stopTask(taskName);
//		Task.putTask(task);
//		Thread.sleep(4000);
//		Task.stopTask(taskName);
	}

	@Override
	public boolean getFinished() {
		// TODO Auto-generated method stub
		return false;
	}
}
